"""
创建管理员用户脚本
"""
import sys
import os

# 添加项目根目录到Python路径
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))

from sqlalchemy.orm import Session
from app.core.database import SessionLocal
from app.models.user import User
from app.services.auth_service import AuthService

def create_admin_user():
    """创建管理员用户"""
    db = SessionLocal()
    try:
        # 检查是否已存在指定的管理员用户
        admin_user = db.query(User).filter(User.email == "admin@example.com").first()
        if admin_user:
            print("管理员用户已存在")
            print(f"邮箱: {admin_user.email}, 用户名: {admin_user.username}, 超级用户: {admin_user.is_superuser}")
            return
        
        # 创建管理员用户
        auth_service = AuthService(db)
        hashed_password = auth_service.get_password_hash("admin123")
        
        admin = User(
            email="admin@example.com",
            username="admin",
            full_name="管理员",
            hashed_password=hashed_password,
            is_active=True,
            is_verified=True,
            is_superuser=True
        )
        
        db.add(admin)
        db.commit()
        db.refresh(admin)
        print("管理员用户创建成功")
        print(f"邮箱: {admin.email}, 用户名: {admin.username}, 超级用户: {admin.is_superuser}")
    except Exception as e:
        print(f"创建管理员用户失败: {str(e)}")
        db.rollback()
    finally:
        db.close()

if __name__ == "__main__":
    create_admin_user()